A computer program listing appendix containing the source code of a computer program that may be used with the present invention is incorporated herein by reference and appended hereto as one (1) original compact disk, and an identical copy thereof, containing a total of sixteen (16) files as follows: ACL.H; AMGR.H; BASE.H; BASEMGR.H; BUFFER.H; DATAMOD.H; DATETIME.H; ENCODE.H; ENV.H; EXCEPT.H; OID.H; REPLICA.H; REPO.H; STRING.H; TYPES.H; AND VALUE.H.
1. Field of the Invention
The present invention relates generally to management and processing of multimedia works and more particularly to providing a uniform and consistent environment for the orderly development and archival of diverse multimedia works.
2. Related Art
The authoring of multimedia works can be a very expensive, time consuming and complicated process. Such projects can involve huge production teams, enormous budgets, and the resources of entire production studios for significant amounts of time. Such multimedia works not only include computerized feature films such as those produced by major Hollywood studios and the like, but they can also include interactive movies, video games and other entertainment and educational type content that can run on personal computers, dedicated game consoles, kiosk machines and the like. It is becoming more common that the production of such multimedia titles consume monetary budgets and other resources not unlike those commonly associated with major Hollywood feature film productions.
Multimedia data, such as collections of digital animations come in a variety of heterogeneous formats and structures. Typically, during the creation of a multimedia project, many different tools and application programs are used to create, edit, and otherwise process various types of multimedia data. In general each of the application programs, such as multimedia content authoring tools, operate on particular types and/or formats of data. Such types and formats of data are typically not compatible with all the various application programs used in the production process.
Additionally, each tool generally requires its own unique file structures, hierarchies, and naming conventions, etc., to manage, store and retrieve data. Each tool may also use different methods to catalog, search, and preview data. Likewise, each tool may use a different method (or no method at all), to track different versions of multimedia data. In addition, many tools operate on different computer platforms and environments that are not compatible with each other. In a typical shared development process, such inconsistencies make it difficult to coordinate and share resources among various members of the development team. In addition, such inconsistencies make it difficult to catalog and archive data in an efficient, safe, and consistent manner. Problems arising from such inconsistencies can be very costly.
The present invention is directed toward a system and method for providing a consistent and efficient production environment for the development of various types of multimedia works and for the orderly archiving of the multimedia works to facilitate their re-use in later projects. Examples of multimedia works can include feature animation films, computer animation films, video games, interactive movies, new clips, educational multimedia products, corporate multimedia productions, multimedia sales catalogs and the like. The present invention assists artists, computer programmers, production managers, editors, directors, and producers in tracking and managing all multimedia data created and used during the process of multimedia productions and in finding and re-using assets from previous productions.
Multimedia data, as the term is used herein, includes any and all types of data used to produce any and all types of multimedia works. Each instance of multimedia data need not comprise multiple data components or different types of media. Indeed multimedia data can comprise data of a single media type. For example, a JPEG data file is an industry standard for a compressed data format that comprises a single still video image. Even though a JPEG file comprises a single media type, it is considered to be multimedia data because it can be used as part of a multimedia production. Likewise, a multimedia authoring tool that can be used to create JPEG files may be referred to herein as a multimedia tool. Multimedia data can also comprise multiple types of media. For example, an MPEG data file is an industry standard for a compressed data format that comprises full-motion video as well as audio data components. Thus, an MPEG data file is another example of multimedia data.
The present invention provides an integrated platform for a variety of diverse computerized utilities and application programs that operate on and/or create various types of multimedia data. Such computerized utilities and application programs can include video film editors, painting programs, three-dimensional modeling utilities, animation tools, and other multimedia data tools, running on a variety of computer systems and platforms.
The present invention provides a means for bringing compatibility and uniformity to diverse multimedia production environments. As stated, a multimedia production environment typically comprises a plurality of diverse types of production tools. The present invention accomplishes compatibility and uniformity among such diverse multimedia production tools by providing them with common program resources. The common program resources include a plurality of utilities and services related to the management, organization and storage of multimedia data. Such program resources are used to facilitate the creation of a consistent and uniform multimedia production environment.
The program resources provided by the present invention also include a plurality of user interface components. Such user interface components provided by the present invention can include dialog boxes, scrollable list boxes, data entry tables, data browsing facilities and the like. By using a common set of user interface components, diverse multimedia production tools can achieve a common overall look and feel and thereby create a more consistent and uniform production environment from the user""s perspective.
Also provided is a means for modifying and/or adding extensions to the plurality of utilities and services provided by the present invention. This feature allows production studios to quickly adapt to the rapidly changing environment of multimedia data and multimedia production tools.
Further, the present invention provides services and utilities for indexing, storing, retrieving, searching, and generally managing and manipulating all of the multimedia data created or used during the production process. The present invention provides for implementation of these features through the use of one or more data base management systems (DBMSs). Typically, DBMSs that are supported by the present invention are of the commercial-off-the self variety. This feature facilitates the use of presently existing and/or readily available DBMSs. However, support for additional DBMSs can easily be added. Likewise, the services and utilities provided by the present invention, which interact with the supported DBMSs, can easily be modified and/or extended. Thus, a production studio simply attaches, in a xe2x80x98plug-and-playxe2x80x99 (PNP) fashion, one or more supported DBMS(s), and the file management features of the present invention are automatically implemented.
All multimedia data created and used during the production process are organized by the present invention into data objects that are referred to herein as xe2x80x98assetsxe2x80x99. An asset is a data object that is defined by the present invention in a particular manner. Each asset comprises two components, namely, a contents component and a metadata component. The metadata component comprises information about an asset, such as its storage location, creation date, creator(s), etc. The contents component comprises the actual multimedia data, which is typically a digital representation of, for example, a visual and/or audio data object. For example, an asset representing a JPEG type image file as described above, comprises a metadata component and a contents component. The contents component is the JPEG file itself, which is a digital representation of a still video image. The creator""s name, the date of creation, and the fact that the file is a 240xc3x97320 JPEG image are examples of the types of information comprising the metadata component of an asset.
All multimedia data is managed by the present invention in the form of assets. Assets are logically stored by the present invention in a location that is referred to herein as the xe2x80x98asset bankxe2x80x99 or xe2x80x98Vaultxe2x80x99. As stated, the actual implementation of the asset bank or Vault is via one or more supported DBMS(s) and associated file systems.
In addition, the present invention provides a means for managing and controlling separate and distinct versions of assets that are developed during the production process. Further, a means for logically relating versions of different assets to each other is provided. Accordingly, any asset version stored in the Vault can refer to any other asset versions stored in the Vault that is in some way related.
The contents component of asset data objects include for example, scanned-in line drawings, drawings that are inked and painted, backgrounds, inspirational artwork, color models, 3D models, x-sheets, and production spreadsheets. In addition, complex assets can be defined which comprise a combination of assets. For example, a sequence asset can comprise a combination of assets each comprising a single frame. In addition, the present invention can also be used to track non-digital assets such as film, analog and/or xe2x80x98off-linexe2x80x99 recordings, as well as paper drawings and the like. In this case, the metadata component of the non-digital data asset typically discloses, among other things, the actual physical location of the non-digital contents component of the asset data object.
Assets are defined and represented through an application programming interface (API), which is used as a uniform layer on top of the DBMS(s) and file system(s) which are typical implementations of the asset bank of the present invention. The API is implemented with a standard object-oriented class library (OOCL). Multimedia production tools can use the utilities provided by the OOCL to convert their multimedia data to assets of the type and format required by the Vault according to the present invention. Likewise, multimedia production tools can use the utilities provided by the OOCL to convert data assets retrieved from the Vault into multimedia data types and formats required by the multimedia production tool.
Assets are implemented using a technique referred to herein as xe2x80x98data modelingxe2x80x99. Data modeling provides the support for the inquiry of assets during runtime. For example, at runtime, a multimedia production tool can determine information pertaining to any asset in the Vault. This enables the generation of a class of tools that can be used to work with all types of assets, including those that may be newly defined during the production process. For example, a generic browser can be implemented to convey detailed information about assets of any type, by using the run-time inquiry feature provided by an implementation of the present invention.
In addition, the present invention provides utilities which support the construction of common services which can include without limitation: checkin/checkout; asset version control; asset searches (including relational and indexed); access permissions to assets; support for Constant Frame Rate (xe2x80x98CFRxe2x80x99) for movie and video playback; and support for work flow management.
In particular, the present invention consists of a Vault for the permanent storage of assets. In addition, a class library (API) is provided as an interface between multimedia production tools and the Vault. The collection of assets, and services provided by the class library are all extensible over time during entertainment product authoring, without re-implementing existing assets.
Note that in the instant disclosure, many of the examples contained herein, refer to the production of a feature animation film. However, it should be appreciated that the descriptions and examples are used herein to particularly point out the principals of the present invention, and such examples should not be construed to limit the scope of the present invention. As stated the present invention applies to all types of multimedia works.
Features and Advantages
General
A feature of the present invention is that it provides support so that a diverse variety of multimedia development tools which operate on a diverse variety of multimedia data can be integrated into an efficient, consistent and uniform environment for the production of multimedia works.
Another feature of the present invention is that it provides support for consistent and orderly cataloging and archiving.
An advantage of the present invention is that the cataloging and archiving features, facilitates reusing multimedia among diverse projects thereby reducing and/or eliminating costly and time-consuming authoring processes.
Another feature of the present invention is that it can be used with commercial off-the-shelf database management systems for the storage, retrieval, indexing and general management of multimedia data.
Versioning
Another feature of the present invention is that it provides support for different versions of assets.
Another feature of the present invention is that is provides support for branch versioning of assets.
Hierarchical Storage Management
Another feature of the present invention is that it provides support for hierarchical storage of assets.
Relationships Among Assets
Another feature of the present invention is that it provides support for relationships between assets including asset derivation.
User Defined Types
Another feature of the present invention is that is provides support for user defined assets. Such user defined assets can be defined dynamically in a run-time environment.
Shared Development
Another feature of the present invention is that it provides support for access control and replication of assets.
Another feature of the present invention is that it provides checkout/checkin functions to facilitate control of multimedia assets during shared development processing.
Data Integrity and Availability
Another feature of the present invention is that it provides for the control over assets integrity by detecting lost of corrupted assets. Additionally, corrupted or lost assets can be corrected upon detection by restoring such assets from backup tapes or the like.
Another feature of the present invention is that it supports different user selectable levels of fault tolerance where each level specifies the importance of immediate access to specific assets.
Off-line Storage
Another feature of the present invention is that it provides support for automatic incremental backups and/or full backups into off-line storage.
An advantage of the present invention is that is provides support so that a user can search and browse off-line assets as easily as one can search and browse on-line assets. Additionally, a user can easily bring assets offline and/or on-line.
Interoperability
Another feature of the present invention is that it supports data translation.
An advantage of the present invention is that it is easy to import and export assets to and from the file system.
Distribution
Another feature of the present invention is that all functions provided are accessible from client stations over a computer network.
Another feature of the present invention is that it provides for the storage and retrieval of assets to and from multiple machines and multiple platforms.
An advantage of the present invention is that it supports a variety of client platforms.
Another feature of the present invention is that it provides an open architecture such that a variety of data base management systems (DBMSs) manufactured by a variety of vendors can be used.
Searching/Browsing
Another feature of the present invention is that it supports multiple indices for retrieval of data and assets.
Another feature of the present invention is that it supports keyword searching including a cataloging system for keyword definition and tagging.
An advantage of the present invention is that it provides support for consistent and user-friendly methods for expressing queries and browsing assets.
Another advantage of the present invention is that it provides support for automatic cataloging when assets are created.
Another feature of the present invention is that it provides support for thumbnails and previews for all appropriate assets. A preview is a method to view an asset in a lower-than-normal-resolution. The preview of a video clip, for example, may be the first and last frame plus user selectable intermediate frame(s) from the clip at a lower frame resolution.
Usability
An advantage of the present invention is that it is fast and it uses storage space efficiently.
Another feature of the present invention is that a user can launch an asset""s application (if available) from the asset""s thumbnail/icon.
Security
Another feature of the present invention is that it provides support for various levels of access control.
Extensibility
Another feature of the present invention is that its architecture is modular and extensible.
Application Integration
Another feature of the present invention is that it supports integration with production management, such as notification when changes have been made to assets.
Another feature of the present invention is that it does not require immediate modifications to existing applications that are to be used as clients (described below). Instead, the present invention provides a path for clients to become more tightly integrated with the present invention at selectable paces and timings as desired.
Constant Frame Rate Delivery
Another feature of the present invention is that is supports frame accurate playback of video and audio. This is used for viewing work-in-progress, for instance. The constant frame rate delivery feature works on a variety of client platforms and a variety of connectivity means.